package com.rzcode.coinex.kernel.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.rzcode.coinex.kernel.common.enums.RewardRecordTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 奖励记录实体类，用于记录用户获得的各种奖励详情。
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "reward_record")
public class RewardRecord {

    /**
     * 唯一标识ID，自动生成。
     */
    @ApiModelProperty(value = "唯一标识ID，自动生成")
    private Long id;

    /**
     * 关联的币种对象。
     */
    @ApiModelProperty(value = "关联的币种对象")
    private Coin coin;

    /**
     * 奖励备注或描述。
     */
    @ApiModelProperty(value = "奖励备注或描述")
    private String remark;

    /**
     * 奖励类型。
     */
    @ApiModelProperty(value = "奖励类型")
    private RewardRecordTypeEnum type;

    /**
     * 奖励的金额，精度为小数点后8位。
     */
    @ApiModelProperty(value = "奖励的金额，精度为小数点后8位")
    private BigDecimal amount;

    /**
     * 获得奖励的会员对象。
     */
    @ApiModelProperty(value = "获得奖励的会员对象")
    private Member member;

    /**
     * 创建时间，自动设置为当前时间。
     */
    @ApiModelProperty(value = "创建时间，自动设置为当前时间")
    private LocalDateTime createTime;
}
